package cn.oms.esb.provider.controller;

import cn.oms.esb.api.exception.ServiceException;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

//@RestControllerAdvice表示当前类是给其它控制器类新增功能的
// 我们这里的功能指异常处理
@RestControllerAdvice
@Slf4j
public class ExceptionControllerAdvice {
    // 当前类的目标是统一处理控制器类中的各种异常
    // 控制器中无需再编写任何try-catch结构,减少代码冗余,专心处理业务

    @ExceptionHandler //表示是处理异常的方法
    public String handlerServiceException(ServiceException e){
        //这个方法来处理控制器方法发生ServiceException类型异常
        log.error("业务异常",e);
        return e.getMessage();
    }

    @ExceptionHandler
    public String handlerException(Exception e){
        log.error("其它异常",e);
        return e.getMessage();
    }



}
